package com.mindskip.xzs.service;

import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.domain.dto.KeyValue;
import com.mindskip.xzs.domain.dto.admin.user.UserCreateDTO;
import com.mindskip.xzs.domain.dto.admin.user.UserPageDTO;
import com.mindskip.xzs.domain.dto.student.user.UserRegisterDTO;
import com.mindskip.xzs.domain.dto.student.user.UserUpdateStudentDTO;
import com.mindskip.xzs.domain.entity.User;
import com.mindskip.xzs.domain.vo.admin.user.UserVO;
import com.mindskip.xzs.domain.vo.student.user.UserEventLogVO;

import java.util.List;

public interface UserService extends BaseService<User> {

    User getUserByUserName(String userName);

    PageInfo<UserVO> getUserByPage(UserPageDTO userPageDTO);

    User insertOrUpdateUser(UserCreateDTO userCreateDTO);

    // 软删除
    void softDeleteById(Integer id);

    // 改变用户状态
    Integer changeStatus(Integer id);

    List<KeyValue> selectByUserName(String userName);

    List<User> selectByIds(List<Integer> ids);

    void studentRegister(UserRegisterDTO userRegisterDTO);

    List<UserEventLogVO> log(User user);

    void updateUser(UserUpdateStudentDTO userUpdateStudentDTO, User user);

}
